关于python3.8+ pyside2 pyinstaller打包的一些坑 |
您所在的位置:网站首页 › pyside2 pyinstaller › 关于python3.8+ pyside2 pyinstaller打包的一些坑 |
环境: python 3.8 pyinstaller 3.6 pyside2 5.14 打包过程中出现错误(1): 7607 WARNING: lib not found: pywintypes38.dll dependency of c:\users\have_\appdata\local\programs\python\python38\lib\site-packages\win32\win32evtlog.pyd7622 WARNING: lib not found: pywintypes38.dll dependency of c:\users\have_\appdata\local\programs\python\python38\lib\site-packages\win32\win32api.pyd解决方法: 打包命令中添加 pywintypes38.dll 的路径例如 --paths C:\Users\have_\AppData\Local\Programs\Python\Python38\Lib\site-packages\pywin32_system32完整的命令为 C:\Users\have_\Desktop\LanZouCloud-API-master>pyinstaller -D -w -i C:\Users\have_\Desktop\LanZouCloud-API-master\favicon.ico --paths C:\Users\have_\AppData\Local\Programs\Python\Python38\Lib\site-packages\pywin32_system32 C:\Users\have_\Desktop\LanZouCloud-API-master\main.py同样下面错误: 7634 WARNING: lib not found: shiboken2.abi3.dll dependency of c:\users\have_\appdata\local\programs\python\python38\lib\site-packages\PySide2\QtCore.pyd7647 WARNING: lib not found: shiboken2.abi3.dll dependency of c:\users\have_\appdata\local\programs\python\python38\lib\site-packages\PySide2\QtNetwork.pyd7666 WARNING: lib not found: shiboken2.abi3.dll dependency of c:\users\have_\appdata\local\programs\python\python38\lib\site-packages\PySide2\QtUiTools.pyd7684 WARNING: lib not found: shiboken2.abi3.dll dependency of c:\users\have_\appdata\local\programs\python\python38\lib\site-packages\PySide2\QtWidgets.pyd7704 WARNING: lib not found: shiboken2.abi3.dll dependency of c:\users\have_\appdata\local\programs\python\python38\lib\site-packages\PySide2\QtGui.pyd7725 WARNING: lib not found: pywintypes38.dll dependency of c:\users\have_\appdata\local\programs\python\python38\lib\site-packages\win32\win32wnet.pyd8035 WARNING: lib not found: shiboken2.abi3.dll dependency of c:\users\have_\appdata\local\programs\python\python38\lib\site-packages\PySide2\pyside2.abi3.dll需要添加 shiboken2.abi3.dll 路径 --paths C:\Users\have_\AppData\Local\Programs\Python\Python38\Lib\site-packages\shiboken2
打包过程中出现错误(2): 打包完成后运行.exe文件出现 failed to execute script XXX ,例如打包文件为main.py ,打包完成后运行出现:failed to execute script main。 对于这种情况,需要重新打包,在打包的时候加入了参数 -c ,如下: pyinstaller -D -w -c --paths C:\Users\have_\AppData\Local\Programs\Python\Python38\Lib\site-packages\pywin32_system32 --paths C:\Users\have_\AppData\Local\Programs\Python\Python38\Lib\site-packages\shiboken2 C:\Users\have_\Desktop\LanZouCloud-API-master\main.py打包完成后再次运行.exe文件,控制台窗口一闪而过,出现 ImportError:could not import moudle 'PySide2.QtXml' , 如下图: 这意思是PyInstaller打包的时候,没有把 PySide2.QtXml库打包,因为PyInstaller是通过分析我们的代码里面的 import 语句,推断我们的程序需要哪些库的。但是有些代码,导入库的时候,是 动态导入 。所谓动态导入就是,写代码的时候并不确定要导入什么库,而是在运行的时候才知道。这种情况,不是用 import语句,而是用 __import__ 或者 exec 、 eval 这样的方式,来导入库。 PyInstaller对此有说明,参考这里 PyInstaller 没法分析出动态导入的库有哪些,我们可以通过命令行参数 --hidden-import 告诉它。 pyinstaller -D -w -i C:\Users\have_\Desktop\LanZouCloud-API-master\favicon.ico --paths C:\Users\have_\AppData\Local\Programs\Python\Python38\Lib\site-packages\pywin32_system32 --paths C:\Users\have_\AppData\Local\Programs\Python\Python38\Lib\site-packages\shiboken2 C:\Users\have_\Desktop\LanZouCloud-API-master\main.py --hidden-import PySide2.QtXml 注意:是' --hidden-import PySide2.QtXml' , '--' 的前面有两个空格 !最后打包完成后可能仍然无法运行程序,检查发现我的程序界面采用ui文件动态加载的, 即"self.login = QUiLoader().load('login.ui')",因此需检查dist目录下,打包好的程序文件夹中是否有相应的UI文件,如果没有需要将其复制进去。 此上为本次打包过程中遇到的所有问题。 原文链接:https://blog.csdn.net/Rayn_Zhu/article/details/106454057 程序员说:42岁了,突然觉得研发前途渺茫 中国程序员数量达755万,全球排名第二 为什么都说程序员找不到女朋友,但是身边程序猿的却没一个单身的? 程序员说:30岁以上你还死磕技术,别说拿高薪,可能你连饭碗都会保不住 程序员被开除,老板:“有你参与的项目全黄了!” 笑话:一个测试工程师走进一家酒吧 笑话:面试官:请拿出一段体现你水平的代码。我: sudo rm -rf /*面试官:这体现了你哪方面能力? python精选:Python 办公实战!按姓名拆分 Excel 为单独文件,微信自动发给相应联系人 网友说:做开发,不被领导喜欢怎么办? 网友说:我奉劝各位,一定不能在职场透露自己的家庭条件 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |